var Asteroid = function () {

	var scope = this;

	THREE.Geometry.call(this);

	v( 0.000000, -3.052641, -0.000000 );
	v( 1.850741, -1.143798, 1.344620 );
	v( -0.817794, -1.323238, 2.517015 );
	v( -2.681293, -1.340618, -0.000000 );
	v( -0.773475, -1.251528, -2.380608 );
	v( 1.489772, -0.920716, -1.082366 );
	v( 0.826076, 1.336639, 2.542506 );
	v( -1.684726, 1.041200, 1.224006 );
	v( -2.252599, 1.392151, -1.636582 );
	v( 0.681951, 1.103438, -2.098911 );
	v( 2.429628, 1.214790, -0.000000 );
	v( 0.000000, 2.496397, -0.000000 );
	v( 1.516179, -3.032445, 1.101557 );
	v( -0.508322, -2.661726, 1.564495 );
	v( 0.704862, -1.409724, 2.169323 );
	v( 1.354961, -2.709997, -0.984427 );
	v( 2.395859, -1.480703, -0.000000 );
	v( -1.527540, -2.471658, -0.000000 );
	v( -1.800951, -1.375815, 1.308475 );
	v( -0.407829, -2.135509, -1.255199 );
	v( -1.799939, -1.375042, -1.307740 );
	v( 0.862232, -1.724464, -2.653655 );
	v( 2.859891, 0.000000, -0.929201 );
	v( 2.197126, 0.000000, 0.713866 );
	v( 1.901153, 0.000000, 2.616798 );
	v( 0.000000, 0.000000, 2.296487 );
	v( -1.228733, 0.000000, 1.691247 );
	v( -2.553582, 0.000000, 0.829680 );
	v( -2.091797, 0.000000, -0.679644 );
	v( -1.601469, 0.000000, -2.204299 );
	v( 0.000000, 0.000000, -2.753347 );
	v( 1.819670, 0.000000, -2.504641 );
	v( 1.852761, 1.415394, 1.346117 );
	v( -0.634039, 1.268077, 1.951351 );
	v( -3.131778, 1.935514, -0.000000 );
	v( -0.717131, 1.434261, -2.207081 );
	v( 1.735726, 1.325988, -1.261086 );
	v( 1.250626, 2.023589, -0.000000 );
	v( 0.601079, 3.147430, 1.849978 );
	v( -1.448289, 2.896660, 1.052233 );
	v( -0.755228, 1.510489, -0.548699 );
	v( 0.445911, 2.334923, -1.372408 );

	f3( 14, 12, 1 );
	f3( 12, 14, 13 );
	f3( 2, 13, 14 );
	f3( 13, 0, 12 );
	f3( 16, 1, 12 );
	f3( 12, 15, 16 );
	f3( 5, 16, 15 );
	f3( 12, 0, 15 );
	f3( 18, 13, 2 );
	f3( 13, 18, 17 );
	f3( 3, 17, 18 );
	f3( 17, 0, 13 );
	f3( 20, 17, 3 );
	f3( 17, 20, 19 );
	f3( 4, 19, 20 );
	f3( 19, 0, 17 );
	f3( 21, 19, 4 );
	f3( 19, 21, 15 );
	f3( 5, 15, 21 );
	f3( 15, 0, 19 );
	f3( 23, 1, 16 );
	f3( 16, 22, 23 );
	f3( 10, 23, 22 );
	f3( 22, 16, 5 );
	f3( 25, 2, 14 );
	f3( 14, 24, 25 );
	f3( 6, 25, 24 );
	f3( 24, 14, 1 );
	f3( 27, 3, 18 );
	f3( 18, 26, 27 );
	f3( 7, 27, 26 );
	f3( 26, 18, 2 );
	f3( 29, 4, 20 );
	f3( 20, 28, 29 );
	f3( 8, 29, 28 );
	f3( 28, 20, 3 );
	f3( 31, 5, 21 );
	f3( 21, 30, 31 );
	f3( 9, 31, 30 );
	f3( 30, 21, 4 );
	f3( 32, 23, 10 );
	f3( 23, 32, 24 );
	f3( 6, 24, 32 );
	f3( 24, 1, 23 );
	f3( 33, 25, 6 );
	f3( 25, 33, 26 );
	f3( 7, 26, 33 );
	f3( 26, 2, 25 );
	f3( 34, 27, 7 );
	f3( 27, 34, 28 );
	f3( 8, 28, 34 );
	f3( 28, 3, 27 );
	f3( 35, 29, 8 );
	f3( 29, 35, 30 );
	f3( 9, 30, 35 );
	f3( 30, 4, 29 );
	f3( 36, 31, 9 );
	f3( 31, 36, 22 );
	f3( 10, 22, 36 );
	f3( 22, 5, 31 );
	f3( 38, 6, 32 );
	f3( 32, 37, 38 );
	f3( 11, 38, 37 );
	f3( 37, 32, 10 );
	f3( 39, 7, 33 );
	f3( 33, 38, 39 );
	f3( 11, 39, 38 );
	f3( 38, 33, 6 );
	f3( 40, 8, 34 );
	f3( 34, 39, 40 );
	f3( 11, 40, 39 );
	f3( 39, 34, 7 );
	f3( 41, 9, 35 );
	f3( 35, 40, 41 );
	f3( 11, 41, 40 );
	f3( 40, 35, 8 );
	f3( 37, 10, 36 );
	f3( 36, 41, 37 );
	f3( 11, 37, 41 );
	f3( 41, 36, 9 );

	function v( x, y, z ) {

		scope.vertices.push( new THREE.Vertex( new THREE.Vector3( x, y, z ) ) );

	}

	function f3( a, b, c, nx, ny, nz ) {

		scope.faces.push( new THREE.Face3( a, b, c, nx && ny && nz ? new THREE.Vector3( nx, ny, nz ) : null ) );

	}

	function f4( a, b, c, d, nx, ny, nz ) {

		scope.faces.push( new THREE.Face4( a, b, c, d, nx && ny && nz ? new THREE.Vector3( nx, ny, nz ) : null ) );

	}

	function uv( u1, v1, u2, v2, u3, v3, u4, v4 ) {

		var uv = [];
		uv.push( new THREE.UV( u1, v1 ) );
		uv.push( new THREE.UV( u2, v2 ) );
		uv.push( new THREE.UV( u3, v3 ) );
		if ( u4 && v4 ) uv.push( new THREE.UV( u4, v4 ) );
		scope.uvs.push( uv );
	}

}

Asteroid.prototype = new THREE.Geometry();
Asteroid.prototype.constructor = Asteroid;
